#include "myshell.h"

#define SIZE 1024
char commandstr[SIZE];//缓冲区:存储输入命令

int main()
{
    //Debug();
    while(true)
    {
        //0、命令行参数表初始化
        InitGlobal();
        
        //1、输出命令行提示符
        PrintfCommandPrompt();
        
        //2、获取用户输入命令
        if(!GetCommandString(commandstr, SIZE)) 
            continue;//出入为空时就结束
        
        //3、重定向检测与设置
        CheckRedir(commandstr);
        
        //4、拆分命令行字符串,形成命令行参数表
        //"ls -a -l" -> "ls" "-a" "-l"
        ParseCommandString(commandstr);
        
        //5、检查命令：内建命令交由父进程进行
       if(BuiltInCommandExec())
            continue;//为内建命令就不需要往后进行

        //6、执行命令:让子进程执行程序替换
        ForkAndExec();
        
        //printf("echo: %s\n", commandstr);
    }
    
    return 0;
}
